package Controlador;

import java.awt.Window;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowEvent;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.swing.JOptionPane;

import Vista.VistaMenu;
import Vista.VistaCliente;
import Modelo.Cliente;
import Modelo.Orden;
import Modelo.Accion;


public class CntrlCliente implements ActionListener,ItemListener{
	
	VistaCliente vistaCliente;
	Accion accion=new Accion();
	
	public CntrlCliente(VistaCliente vistacliente)
	{
		vistaCliente=vistacliente;
		desActivar();
		
	}
	
	
	public void actionPerformed(ActionEvent ae) {
		String opcion=(String)ae.getActionCommand();
		if(opcion.equals("Registrar")){
			boolean valida=false;
			valida=validarCampos();
			if(valida){
			  Cliente cliente= new Cliente(vistaCliente.txtCedula.getText(),vistaCliente.txtNombre.getText(),vistaCliente.txtApellido.getText(),vistaCliente.txtTelefono.getText(),vistaCliente.txtDireccion.getText());
		      accion.registrarCliente(cliente); 
		      JOptionPane.showMessageDialog(null, "EL CLIENTE HA SIDO REGISTRADO CON EXITO", 
						"REGISTRO CLIENTE", 
						JOptionPane.INFORMATION_MESSAGE);
		                limpiar();
			}
			
			else{
				JOptionPane.showMessageDialog(null, "DEBES LLENAR TODOS LOS LOS CAMPOS", 
						"REGISTRO CLIENTE", 
						JOptionPane.INFORMATION_MESSAGE);
			}
			
			
		}
		if(opcion.equals("Buscar")){
			boolean encontrado;
			Cliente cliente;
			
		    encontrado=accion.consultarCliente(vistaCliente.txtCedula.getText());
		    if(encontrado){
		    cliente=accion.ObtenerCliente(vistaCliente.txtCedula.getText());
		    vistaCliente.txtNombre.setText(cliente.getNombre());
		    vistaCliente.txtApellido.setText(cliente.getApellido());
		    vistaCliente.txtTelefono.setText(cliente.getTelefono());
		    vistaCliente.txtDireccion.setText(cliente.getDireccion());
		     activar();
		    }
		    else{
		    	JOptionPane.showMessageDialog(null, "EL CLIENTE NO SE ENCUENTRA REGISTRADO", 
						"REGISTRO CLIENTE", 
						JOptionPane.INFORMATION_MESSAGE);
		    	
		    	activar();
		    }
		    
		}
		if(opcion.equals("Modificar")){
			Cliente cliente= new Cliente(vistaCliente.txtCedula.getText(),vistaCliente.txtNombre.getText(),vistaCliente.txtApellido.getText(),vistaCliente.txtTelefono.getText(),vistaCliente.txtDireccion.getText());
		    accion.modificarCliente(vistaCliente.txtCedula.getText(),cliente);
		    JOptionPane.showMessageDialog(null, "LOS DATOS HAN SIDO MODIFICADOS", 
					"REGISTRO CLIENTE", 
					JOptionPane.INFORMATION_MESSAGE);
		}
		if(opcion.equals("Eliminar")){
		    accion.eliminarCliente(vistaCliente.txtCedula.getText());
		    JOptionPane.showMessageDialog(null, "EL CLIENTE HA SIDO ELIMINADO", 
					"REGISTRO CLIENTE", 
					JOptionPane.INFORMATION_MESSAGE);
		}
		if(opcion.equals("Limpiar")){
			limpiar();
		}
		
		if(opcion.equals("    Salir   ")){
			vistaCliente.dispose();
		}
		
				
	}

    
	private boolean validarCampos(){
		boolean sw= false;
		if ((!vistaCliente.txtCedula.getText().equals("")) && (!vistaCliente.txtNombre.getText().equals("")) && (!vistaCliente.txtApellido.getText().equals("")) &&(!vistaCliente.txtTelefono.getText().equals(""))&&(!vistaCliente.txtDireccion.getText().equals("")))
		    sw=true;
		return sw;
		
	}
	
	private void limpiar() {
		vistaCliente.txtCedula.setEditable(true);
		vistaCliente.btnBuscar.setEnabled(true);
		vistaCliente.txtCedula.setText("");
		vistaCliente.txtNombre.setText("");
		vistaCliente.txtApellido.setText("");
		vistaCliente.txtTelefono.setText("");
		vistaCliente.txtDireccion.setText("");
		desActivar();
	}
	private void desActivar(){
		vistaCliente.txtNombre.setEnabled(false);
		vistaCliente.txtApellido.setEnabled(false);
		vistaCliente.txtTelefono.setEnabled(false);
		vistaCliente.txtDireccion.setEnabled(false);
		vistaCliente.btnRegistrar.setEnabled(false);
		vistaCliente.btnEliminar.setEnabled(false);
		vistaCliente.txtCedula.requestFocus(true);
	}
	private void activar(){
		vistaCliente.txtNombre.setEnabled(true);
		vistaCliente.txtApellido.setEnabled(true);
		vistaCliente.txtTelefono.setEnabled(true);
		vistaCliente.txtDireccion.setEnabled(true);
		vistaCliente.btnLimpiar.setEnabled(true);
		vistaCliente.btnRegistrar.setEnabled(true);
		vistaCliente.btnEliminar.setEnabled(true);
		vistaCliente.txtNombre.requestFocus(true);
	}
	
	
	@Override
	public void itemStateChanged(ItemEvent arg0) {
		vistaCliente.repaint();
		
	}
}	
